#pragma once


class GLFWwindow;

namespace carbon {
    class C_Shader;

    class C_GLWrappper {
        public:
            static int initialize();
            static int initializeGlew();

            static int checkWindow(GLFWwindow* win);

            // deprecated, use carbon::C_Events::poll(); instead
            // static void poll_events();

            static void terminate();
            static void setGlfwMinmaxVer(int min, int max);
            static void setBufferSwapInterval(int interval);

            static void enableForwardCompat();
            static void enableCoreProfile();
            static void enableMultisampling(int samples);

            static bool getGlfwStatus();
            static bool getShaderStatus(carbon::C_Shader* shader);

        private:
            static void glfwErrorCallback(int error, const char* description);
    };
}